The timing of issuing memory commands to a memory device are governed by timing specifications, which provide sufficient timing margin for proper operation of the memory device. For example, a common timing specification is the minimum time between issuing consecutive memory access commands, such as consecutive write commands or consecutive read commands. The minimum time provides sufficient time for the previous memory access command to complete before executing the subsequent memory access command. Another common timing specification is the minimum time after issuing a write command before a read command can be issued. The minimum time allows the write operation to fully complete before internally beginning the read operation. Typically, the minimum time between consecutive similar memory access commands (e.g., two clock cycles) is significantly less than the minimum time between a write command followed by a read command (e.g., 15 clock cycles).
In a memory system having many memory devices (which may be separated into memory groups, such as banks of memory), tracking and issuing write-read command combinations to the memory according to the appropriate timing can be very complicated. A memory controller must be capable of managing sequences of commands for each of the memory devices (or banks) while ensuring that the time at which the individual commands are issued to each of the memory devices comply with timing specifications. Where operation of the memory is interleaved to improve memory access times, for example, issuing a write command to a first memory group, then issuing a write command to a second memory group, and then to a third memory group during the minimum time between write and read commands for the first group, and then issuing the read command to the first group, then the second group, and then the third group, the memory controller must track the sequence of commands for each of the groups while weaving the individual commands together all the while maintaining the correct timing.
A concept of “additive latency” (AL) has been introduced for the operation of memory system to make command and data busses efficient for sustainable bandwidths. With additive latency commands may be issued to memory externally, but held by the memory device internally prior to execution for the duration of AL in order to improve system scheduling. In particular, including AL can help avoid collision on the command bus and gaps in data input/output bursts.
Taking advantage of AL can reduce some of the timing complexities of managing the multi-group memory system by providing flexibility in scheduling commands. Nevertheless, in managing the issue of issuing complex sequences of memory access commands with the appropriate timing, timing gaps between the commands of a sequence of commands or between data can result. Although timing specifications are met, utilization of the command and data busses may be compromised.